<?
class ObjArma extends ObjEquipamento {
	
	protected $danoTipos;
	protected $data = array();
	
	function __construct (
		$nome, $genero, $ouro, $img, $peso,
		$danoDado, $repeticoes, $incremento, $critical,
		$nonLethalDamage, $allowOpportunity, $longoAlcance,
		$danoTipos
		) {
		parent::__construct($nome, $genero, $ouro, $img);
		
		$this->data['danoDado']			= $danoDado;
		$this->data['dadoRepeticoes']	= $repeticoes;
		$this->data['dadoIncremento']	= $incremento;
		$this->data['critical']			= $critical;
		$this->data['longoAlcance']		= $longoAlcance;
		$this->data['allowOpportunity']	= $allowOpportunity;
		$this->data['nonLethalDamage']	= $nonLethalDamage;
		$this->data['peso']				= $peso;
		
		$this->danoTipos = $danoTipos;
	}
	
	public function damage() {
		$dado = new Dado($this->data['danoDado']);
		//var_dump($dado);
		return $dado->lancar($this->data['dadoRepeticoes'], $this->data['dadoIncremento']);
	}
	
	public function max_damage() {
		return $this->data['dadoRepeticoes'] * $this->data['danoDado'] + $this->data['dadoIncremento'];
	}
	
	public function existeDanoTipo($tipo) {
		return $this->danoTipos->existe($tipo);
	}
	
	public function examinadoHtml($siteHtml) {
		$this->data['dano_max'] = $this->max_damage();
		if (!$this->getValue('allowOpportunity')) $this->data['opportunity_str'] = 'não ';
		if ($this->getValue('nonLethalDamage')) $this->data['letal_str'] = 'não ';
		if ($this->getValue('peso')>1) $this->data['s'] = 's';
		$tstring = $siteHtml->mixArray($this->toArray(), 'arma_examinado');
		return $tstring;
	}
	
	public function getValue($atrib) {
		return $this->data[$atrib];
	}
	
	public function toArray() {
		return $this->data;
	}
}
?>